home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / game / role / jdl.lha / Installiere_JdL next >
Text File  |  1996-09-05  |  13KB  |  478 lines

  1. ; $VER: Installiere_JdL 1.3 (06.09.96)
  2.  
  3. ; Dies ist mein erstes Installer-Skript...
  4.  
  5.  
  6.  
  7.  
  8. (user 2)
  9.  
  10. (message (cat "Hy, dies ist das unter vielen Mühen entstandene Installationsskript für die Juwelen des Lichts.\n\n"
  11.           "Gleich werden sie nach dem gewünschten Verhalten des Installationsprogramm gefragt,"
  12.           "wo sie je nach Wissensstand über Ihren Amiga und den Zusatzinfos, die sie dort unter Hilfe (Help) erhalten, antworten sollen.\n\n"
  13.           "(Übrigens, hat irgendwer eine brauchbare Dokumentation zum Installer? :-)"
  14.      )
  15. )
  16.  
  17.  
  18. (message (cat "INFOS:\n"
  19.         "\n Einsteiger/Novice-User:\n Hier muss man nur das Zielverzeichnis angeben, alle anderen Schritte werden automatisch"
  20.         "ausgeführt. Dadurch wird eine teilweise Installation (d.h. ohne Sounds und Zusatzgraifken) durchgeführt, die sowohl auf eine Diskette als auch"
  21.         "auf eine Festplatte möglich ist."
  22.         "Zielverzeichnis nötig sind."
  23.         "\n"
  24.        )
  25. )
  26.  
  27. (message (cat "INFOS:\n"
  28.         "\n Geübter Benutzer/Intermediate-User:\n Hier muss man nur das Zielverzeichnis angeben und festlegen, ob man eine "
  29.         "teilweise oder vollständige Installation wünscht. Die vollständige Installation ist nur bei"
  30.         "Verwendung einer Festplatte sinnvoll, auf der ca. 1.5 MByte freier Platz benötigt werden."
  31.         "Bei der vollständigen Installation werden die Sounds und Zusatzgrafiken kopiert."
  32.         "\n"
  33.         "\n Experte/Expert-User:\n Wie Intermediate-User, nur kann man hier noch zusätzlich einige Programmoptionen festlegen"
  34.         "\n"
  35.        )
  36. )
  37.  
  38.  
  39.  
  40. ; Trick, um kurzfristig auf anderen Level umschalten zu koennen
  41. (set old_level @user-level)
  42.  
  43.  
  44.  
  45.  
  46.  
  47. ; *********************************************************************
  48. ; * Abfrage, wo installiert werden soll
  49. ; *********************************************************************
  50.  
  51. (complete 0)
  52.  
  53. ; Trick: Damit die Abfrage kommt, ist es noetig, auf einen hoeheren Level zu schalten
  54. (user 2)
  55.  
  56. (set Zielverzeichnis @default-dest)
  57.  
  58.  
  59.     (set Zielverzeichnis
  60.          (askdir
  61.          (prompt (cat "Wo soll das Spiel installiert werden?\n"
  62.                   "(Ein neues Verzeichnis namens Juwelen_des_Lichts wird dort angelegt)"
  63.              )
  64.          )
  65.          (help @askdir-help)
  66.          (default Zielverzeichnis)
  67.          )
  68.     )
  69.  
  70.  
  71. (set Installverz (tackon Zielverzeichnis "Juwelen_des_Lichts"))
  72.  
  73.  
  74. ; Trick: Wir schalten wieder zurueck
  75. (user old_level)
  76.  
  77.  
  78.  
  79.  
  80.  
  81. ; *********************************************************************
  82. ; * Abfrage, wie installiert werden soll
  83. ; *********************************************************************
  84.  
  85. (complete 1)
  86.  
  87. (set installmodus
  88.   (askchoice (prompt (cat "\nDieses Skript installiert das Spiel -- Die Juwelen des Lichts --\n\n"
  89.              "Es gibt zwei Installationsmöglichkeiten (genaueres im Hilfstext):\n"
  90.              )
  91.          )
  92.          (help (cat "Die vollständige Installation kopiert das Hauptprogramm und die Zusatzdateien, "
  93.                "nämlich die Zusatzgrafiken und die Sounds, in ein noch zu wählendes Verzeichnis."
  94.                "Aufgrund der Größe der Dateien ist diese Einstellung nur bei der Installation "
  95.                "auf einer Festplatte sinvoll. Benötigt werden ca. 1.5 MByte freien Platz auf der Festplatte."
  96.                "\n\nBei der teilweisen Installation werden die Zusatzgrafiken und Sounds nicht kopiert "
  97.                "und daher kann man mit dieser Einstellung auch auf einer Diskette installieren."
  98.            )
  99.          )
  100.          (default 1
  101.          )
  102.          (choices "Vollständig installieren (nur HD)" "Teilweise installieren (HD oder Disk)")
  103.   )
  104. )
  105.  
  106.  
  107.  
  108. ; *********************************************************************
  109. ; * Ist JdL im Zielverzeichnis schon installiert? Falls ja: Version testen
  110. ; *********************************************************************
  111.  
  112. ; In dieses Verzeichnis soll JdL installiert werden - ist es dort schon?
  113.  
  114. (set datei (tackon Installverz "JdL"))
  115. (if (exists datei (NOREQ))
  116.     (
  117.     ;*** Version testen: In Version steht nun die Zahl xyz, die sich
  118.     ;***             aus der Version der Form x.yz ergibt
  119.  
  120.     ;*** Die Version des zu installierenden Programms
  121.     (set datei "JdL")
  122.  
  123.     (set vernum (getversion datei))
  124.  
  125.     (set ver (/ vernum 65536))
  126.     (set rev (- vernum (* ver 65536)))
  127.     (set jdl_version (+ (* 100 ver) rev))
  128.  
  129.  
  130.     ;*** Die Version des bereits installierten Programms
  131.     (set datei (tackon Installverz "JdL"))
  132.  
  133.     (set vernum (getversion datei))
  134.  
  135.     (set ver (/ vernum 65536))
  136.     (set rev (- vernum (* ver 65536)))
  137.     (set version (+ (* 100 ver) rev))
  138.  
  139.     (if (> version jdl_version)
  140.         (
  141.         (message (cat "JdL ist in " Installverz " schon in der Version " version " installiert\n"
  142.                   "Dieser Installer würde aber die ältere Version " jdl_version " installieren.\n"
  143.                   "Das Skript wird daher abgebrochen."
  144.              )
  145.         )
  146.  
  147.         (exit (quiet))
  148.         )
  149.     )
  150.     )
  151. )
  152.  
  153.  
  154. ; *********************************************************************
  155. ; * Ist im Zielverzeichnis genug Platz fuer die gewuenschte Installation
  156. ; *********************************************************************
  157.  
  158. (if (= installmodus 0)
  159.   (
  160.     (set freierPlatz (getdiskspace Zielverzeichnis))
  161.  
  162.  
  163.     (if (< freierPlatz 1500000)
  164.       (
  165.     (abort (cat "NICHT GENÜGEND PLATZ AUF \"" Zielverzeichnis "\" !!!\n"
  166.             "Bei der vollständingen Installation werden mindestens 1.5 MByte"
  167.             "freier Platz auf der Disk/Festplatte benötigt.\n"
  168.             "Vorhandener Platz: " freierPlatz " Bytes"
  169.            )
  170.     )
  171.       )
  172.     )
  173.   )
  174. )
  175.  
  176.  
  177.  
  178. (if (= installmodus 1)
  179.   (
  180.     (set freierPlatz (getdiskspace Zielverzeichnis))
  181.  
  182.  
  183.     (if (< freierPlatz 800000)
  184.       (
  185.     (abort (cat "NICHT GENÜGEND PLATZ AUF \"" Zielverzeichnis "\" !!!\n"
  186.             "Bei der teilweisen Installation werden mindestens 0.8 MByte"
  187.             "freier Platz auf der Disk/Festplatte benötigt.\n"
  188.             "Vorhandener Platz: " freierPlatz " Bytes"
  189.            )
  190.     )
  191.       )
  192.     )
  193.   )
  194. )
  195.  
  196.  
  197.  
  198.  
  199. ; *********************************************************************
  200. ; * Unterverzeichnis in Zielverzeichnis anlegen
  201. ; *********************************************************************
  202.  
  203. (complete 2)
  204.  
  205. ; Trick: Auch Intermediate-Usern wird diese Entscheidung erspart, daher
  206. ;     schalten wir kurzfristig zurueck
  207. (if (= @user-level 1)
  208.    (
  209.     (user 0)
  210.    )
  211. )
  212.  
  213.  
  214.   (makedir Installverz
  215. ;         (prompt "Ich lege nun das Verzeichnis \"" Installverz "\" an.")
  216. ;         (help @makedir-help)
  217. ;         (infos)
  218. ;         (confirm)
  219.   )
  220.  
  221.  
  222.  
  223.  
  224. ; Trick: Wir schalten wieder zurueck
  225. (user old_level)
  226.  
  227.  
  228.  
  229.  
  230. ; *********************************************************************
  231. ; * Abfrage, ob die Option Lowmem (Anlegen von Puffern) aktiviert
  232. ; * werden soll
  233. ; *********************************************************************
  234.  
  235. (complete 3)
  236.  
  237. ; Trick: Auch Intermediate-Usern wird diese Entscheidung erspart, daher
  238. ;     schalten wir kurzfristig zurueck
  239.  
  240. (if (= @user-level 1)
  241.   (
  242.     (user 0)
  243.   )
  244. )
  245.  
  246.  
  247. (set lowmem
  248.   (askchoice (prompt (cat "\nDas Programm kann häufig benötigte Dateien vor dem Programmstart "
  249.               "in einen Puffer kopieren und dadurch den Programmablauf beschleunigen.\n"
  250.               "Diese Option ist eigentlich nur bei einer Installation auf Diskette sinnvoll."
  251.              )
  252.          )
  253.          (help (cat "Die Puffer werden beim Programmstart angelegt und darin werden "
  254.             "die Landkarte, die Stadtkarten, die Höhlenkarten und die Texte "
  255.             "eingelesen um im Spielverlauf schneller verfügbar zu sein. "
  256.             "Allerdings sollte diese Option beim Verwenden einer Festplatte unnötig sein."
  257.            )
  258.          )
  259.          (default 0
  260.          )
  261.          (choices "Keine Puffer anlegen" "Puffer anlegen")
  262.   )
  263. )
  264.  
  265.  
  266. ; Trick: Wir schalten wieder zurueck
  267. (user old_level)
  268.  
  269.  
  270.  
  271.  
  272. ; *********************************************************************
  273. ; * Konfigurationsfile anlegen
  274. ; *********************************************************************
  275. (complete 5)
  276.  
  277. (working)
  278.  
  279. (set text1 "* Dies ist eine automatisch erzeugte Konfigurationsdatei fuer die Juwelen des Lichts\n")
  280.  
  281.  
  282.  
  283. ; *********************************************************************
  284. ; * Puffer-Option im Konfigurationsfile aktivieren
  285. ; *********************************************************************
  286. (working)
  287. (set text2 "* Es werden keine Puffer angelegt\n")
  288.  
  289. (if (= lowmem 0)
  290.   (
  291.    (set text2 "* Keine Puffer anlegen\n#Lowmem\n")
  292.   )
  293. )
  294.  
  295.  
  296.  
  297.  
  298. ; *********************************************************************
  299. ; * Bei vollstaendiger Installation die Grafiken und optional die
  300. ; * Sounds im Konfigurationsfile aktivieren
  301. ; *********************************************************************
  302.  
  303. (working)
  304. (set text3 "* Zusatgrafiken/Verbesserte Grafiken sind nicht aktiviert\n")
  305. (set text4 "* Sound ist deaktiviert\n")
  306. (set text5 "* Das Speichern der Automappingkarten ist deaktiviert\n")
  307.  
  308. (if (= installmodus 0)
  309.   (
  310.    (set text3 "* Zusatgrafiken/Verbesserte Grafiken aktivieren\n#Extended\n")
  311.  
  312.    ; *** Das aktivieren der Sounds ist optional
  313.    (complete 8)
  314.  
  315.    ; Trick: Auch Intermediate-Usern wird diese Entscheidung erspart, daher
  316.    ;        schalten wir kurzfristig zurueck
  317.    (if (= @user-level 1)
  318.      (
  319.        (user 0)
  320.      )
  321.    )
  322.  
  323.    (set sound
  324.      (askchoice (prompt (cat "\nDie Zusatzoption Sound wird standardmässig aktiviert."
  325.                  "Hierzu wird die MedPlayer.Library verwendet, die, so wurde mir berichtet,"
  326.                  "in sehr seltenen Fällen beim Start des Programms zu einem Absturz führen kann.\n"
  327.                  "\nEmpfehlung: Die Sounds installieren und ausprobieren. Sollte es Probleme "
  328.                  "geben, dann nochmals mit deaktivierter Option installieren."
  329.             )
  330.         )
  331.         (help (cat "Wie gesagt, dieser Fehler ist mir bisher nur einmal "
  332.                "berichtet worden - auf meinem Rechner gab es noch nie Probleme."
  333.               )
  334.         )
  335.         (default 1
  336.         )
  337.         (choices "Keine Sounds" "Sounds aktivieren")
  338.      )
  339.    )
  340.  
  341.  
  342.    (if (= sound 1)
  343.      (
  344.       (working)
  345.       (set text4 "* Sound aktivieren\n#Sound\n")
  346.      )
  347.    )
  348.  
  349.  
  350.    (set dkarten
  351.      (askchoice (prompt (cat "\nDie Zusatzoption 'Automappingkarten speichern' wird standardmässig NICHT aktiviert."
  352.                  "Durch Aktivieren dieser Option werden die während des Spiels vom Programm"
  353.                  "gezeichneten Dungeonkarten gespeichert und stehen bei späteren Spielen"
  354.                  "wieder zur Verfügung. Allerdings benötigt man bis zu 200 KByte mehr Speicherplatz"
  355.                  "auf der Floppy/Harddisk."
  356.             )
  357.         )
  358.         (help (cat "Wer sich den Speicherplatz leisten kann, der sollte es tun..."
  359.               )
  360.         )
  361.         (default 0
  362.         )
  363.         (choices "Karten NICHT speichern" "Karten speichern")
  364.      )
  365.    )
  366.  
  367.  
  368.    (if (= dkarten 1)
  369.      (
  370.       (working)
  371.       (set text5 "* Speichern der Automappingkarten aktivieren\n#DKarte=Dungeonkarten/\n")
  372.  
  373.       (set Kartenverz (tackon Installverz "Dungeonkarten"))
  374.  
  375.       (makedir Kartenverz
  376. ;         (prompt "Ich lege nun das Verzeichnis \"" Kartenverz "\" an. Hierin werden die Automappingkarten gespeichert.")
  377. ;         (help @makedir-help)
  378. ;         (infos)
  379. ;         (confirm)
  380.       )
  381.  
  382.  
  383.      )
  384.    )
  385.  
  386.   )
  387.  
  388. )
  389.  
  390. ; Trick: Wir schalten wieder zurueck
  391. (user old_level)
  392.  
  393.  
  394.  
  395. (set Konfigdatei (tackon Installverz "JdL.cnf"))
  396.  
  397. (set Konfigdateitext (cat text1 text2 text3 text4 text5))
  398. (textfile (dest Konfigdatei) (append Konfigdateitext) (safe))
  399.  
  400.  
  401. ; *********************************************************************
  402. ; * Libraries installieren
  403. ; *  - Die iff.library wird nur installiert, wenn Vollstaendige
  404. ; *    Installation gewaehlt wurde
  405. ; *  - Die medplayer.library wird nur installiert, wenn Vollstaendige
  406. ; *    Installation gewaehlt wurde UND die Sounds aktiviert sind
  407. ; *********************************************************************
  408.  
  409. (complete 15)
  410.  
  411. ; Trick: Damit die Abfrage kommt, ist es noetig, auf einen hoeheren Level zu schalten
  412. (user 2)
  413.  
  414. (if (= installmodus 0)
  415.   (
  416.    ; *** iff.library installieren
  417.    (copylib (prompt "Installiere die iff.library nach LIBS:\nDiese Bibliothek wird für die Grafiken benötigt.") (help "Was soll man hier erklären...\n") (source "libs/iff.library") (dest "libs:") (safe) (confirm) )
  418.    (working)
  419.  
  420.     (if (= sound 1)
  421.        (
  422.     ; *** medplayer.library installieren
  423.     (copylib (prompt "Installiere die medplayer.library nach LIBS:\nDiese Bibliothek wird für die Sounds benötigt.") (help "Was soll man hier erklären...\n") (source "libs/medplayer.library") (dest "libs:") (safe) (confirm) )
  424.     (working)
  425.        )
  426.     )
  427.   )
  428.  
  429. )
  430.  
  431. ; Trick: Wir schalten wieder zurueck
  432. (user old_level)
  433.  
  434.  
  435. ; *********************************************************************
  436. ; * Entpacken der Archive
  437. ; *  - Das Archiv jdl_1.lha wird immer entpackt
  438. ; *  - Das Archiv jdl_2.lha wird nur bei vollstaendiger Installation
  439. ; *    entpackt
  440. ; *********************************************************************
  441.  
  442.  
  443. (complete 30)
  444. (working)
  445.  
  446. (makeassign "jdltemp")
  447. (makeassign "jdltemp" Installverz)
  448.  
  449.  
  450. (copyfiles (source "Jdl") (dest "jdltemp:") (infos) (files) (safe)
  451. )
  452.  
  453. (complete 40)
  454. (working)
  455.  
  456. (run "lha -a -x x jdl_1.lha #? jdltemp:")
  457.  
  458. (complete 70)
  459. (working)
  460.  
  461. ; Was wurde ausgewaehlt?
  462.  
  463. (if (= installmodus 0)
  464.   (
  465.    ;**** Alles entpacken
  466.    (working)
  467.  
  468.    (run "lha -a -x x jdl_2.lha #? jdltemp:")
  469.  
  470.   )
  471. )
  472.  
  473. ; *** Den assign wieder aufheben
  474. (makeassign "jdltemp")
  475.  
  476. (complete 100)
  477.  
  478.